/**
 * 
 */
package noyau;


/**
 * Une stratégie de chargement de classe dans laquelle on cherche des classes
 * qui se trouvent dans le package plugin et donc dans le dossier src/plugin
 *
 */
public class StrategieChargementImpl implements StrategieChargement {

    /**
     * Une stratégie de chargement simple : on va chercher les classes
     * dans le package plugin 
     * @param nomClasse le nom de la classe a charger
     * @throws ClassNotFoundException 
     * @see noyau.StrategieChargement#getClasse(java.lang.String)
     */
    public final Class<?> getClasse(final String nomClasse) throws ClassNotFoundException {
        return Class.forName("plugin."+nomClasse);
    }
    
    /** 
     * On utilise une instanciation simple
     * @param nomClasse le nom de la classe a charger
     * @see noyau.StrategieChargement#getInstance(java.lang.String)
     */
    public final Object getInstance(final String nomClasse) throws ClassNotFoundException, InstantiationException, IllegalAccessException {
    	return this.getClasse(nomClasse).newInstance();
	}

}
